package com.ly.maven05.model;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 对名称、地址等字符串格式化的内容进行格式检查，或者格式化的工具类
 *
 * Created by ly on 2018/3/7.
 */
public class WordDealUtil {

    /**
     * 静态方法wordFormat是用于处理java对象名称向数据库表名转换的方法
     *
     * 将java对象名称（每个单词的头字母大写）按照数据库命名习惯进行格式化，格式化后的数据为小写字母，并使用下划线分割命名单词
     *
     * 例如：employeeInfo经过格式化后为employee_info
     * @param objectName java对象名称
     * @return
     */
    public static String wordFormat(String objectName) {
        Pattern p = Pattern.compile("[A-Z]");
        Matcher m = p.matcher(objectName);
        StringBuffer sb = new StringBuffer();

        while (m.find()) {
            m.appendReplacement(sb, "_" + m.group());
        }
        return m.appendTail(sb).toString().toLowerCase();
    }

    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age < 0) {
            throw new IllegalArgumentException("Age is invalid!");
        }
        this.age = age;
    }
}
